/*
 * Equipo creador por Hector Adrian Valdecantos
 * emai: hvaldecantos@gmail.com
 * 30 de Mayo del 2009
 */

package org.javahispano.javacup.tacticas_aceptadas.hector.equipohectorvaldecantos;

import java.util.ArrayList;
import java.util.List;

public class Historico<T> {
	private int masNuevo, masAntiguo;
	private final int cantidadHistorica=3;
	List<T> elementos = new ArrayList<T>();

	public Historico() {
		masNuevo = cantidadHistorica - 1;
		masAntiguo = 0;
	}

	public T getMasNuevo() {
		if(elementos.size()>masNuevo)
			return elementos.get(masNuevo);
		else
			throw new IndexOutOfBoundsException();
	}
	
	public T getDelMedio() {
		if(elementos.size()>masNuevo-1)
			return elementos.get(masNuevo-1);
		else
			throw new IndexOutOfBoundsException();
	}
	
	public T getMasAntiguo() {
		if(elementos.size()>masAntiguo)
			return elementos.get(masAntiguo);
		else
			throw new IndexOutOfBoundsException();
	}

	public void addElemento(T elemento) {
		if (elementos.size() == masNuevo + 1)
			elementos.remove(masAntiguo);
		elementos.add(elemento);
	}

//	public T[] getHistorico(){
//		return (T[])elementos.toArray();
//	}
	
	@Override
	public String toString() {
		String s = "";
		for (T e : elementos) {
			s = s + " " + e;
		}
		return s;
	}
}
